const seeyonBuild = require('../../seeyonBuild.json');
const buildConfig = seeyonBuild.pathResolve;

const dateFormat = (date, fmt) => {
	var regexs = {
		'M+': date.getMonth() + 1, // 月份
		'd+': date.getDate(), // 日
		'H+': date.getHours(), // 小时
		'm+': date.getMinutes(), // 分
		's+': date.getSeconds(), // 秒
		'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
		'S': date.getMilliseconds() // 毫秒
	};
	// 年
	if ((/(y+)/).test(fmt)) {
		fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
	}
	// 其他的格式化
	for (var k in regexs) {
		if (new RegExp('(' + k + ')').test(fmt)) {
			fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (regexs[k]) : (('00' + regexs[k]).substr(('' + regexs[k]).length)));
		}
	}
	return fmt;
};

// 完全的vue页面参数
const scriptArray = [
	`${buildConfig.ctxPath}/rest/global/v1/env${buildConfig.staticSuffix}`,
	`${buildConfig.ctxPath}/common/cap4/design/js/browser-support.js${buildConfig.staticSuffix}` // 不兼容ie9
];

function V5Plugin() {
	this.v5options = {
		scriptArray,
		buildDate: dateFormat(new Date(), 'yyyy-MM-dd HH:mm:ss.S')
	};
}

V5Plugin.prototype.apply = function (compiler) {
	var v5options = this.v5options;
	compiler.plugin('compilation', function (compilation) {
		compilation.plugin('html-webpack-plugin-before-html-generation', function (htmlPluginData, callback) {
			htmlPluginData.plugin.options.v5options = v5options;
		});
	});
};
module.exports = V5Plugin;
